package cn.itcast.nems.employee.service;

import cn.itcast.ic.common.bean.Page;
import cn.itcast.nems.common.PageQueryModel;
import cn.itcast.nems.employee.api.EmployeeGroupApi;
import cn.itcast.nems.employee.dao.bean.EmployeeGroupsBean;
import cn.itcast.nems.employee.bo.AddEmployeeToGroupBo;
import cn.itcast.nems.employee.bo.DeleteEmployeeFromGroupBo;
import cn.itcast.nems.employee.bo.EmployeeGroupCreateBo;
import cn.itcast.nems.employee.bo.EmployeeGroupUpdateBo;
import cn.itcast.nems.employee.dto.*;

public interface EmployeeGroupService extends EmployeeGroupApi {

    // 查找
    Page<EmployeeGroupDto> findEmployeeGroupPageList(PageQueryModel<EmployeeGroupQueryDto> queryModel);

    // 添加
    boolean createEmployeeGroup(EmployeeGroupCreateBo bo);

    // 编辑
    boolean updateEmployeeGroup(EmployeeGroupUpdateBo bo);

    // 删除
    boolean deleteEmployeeGroup(String id);

    // 用户按钮（用户组对应的用户列表）
    Page<EmployeeInGroupDto> findEmployeeFromGroupPageList(PageQueryModel<EmployeeFromGroupQueryDto> queryModel);

    // 用户窗口的添加按钮
    boolean addEmployeeToGroup(AddEmployeeToGroupBo bo);

    // 用户窗口的删除按钮
    boolean deleteEmployeeFromGroup(DeleteEmployeeFromGroupBo bo);

    // 交互，根据邮箱查找用户
    EmployeeInfoDto employeeAccountInfo(String email);


    // 系统，根据邮箱查找用户组
    EmployeeGroupsBean getEmployeeGroups(String email);
}
